﻿using System.Windows.Controls;
using System.Collections.ObjectModel;
using System.Windows.Input;

namespace ScrumFactory.Composition.ViewModel
{

    /// <summary>
    /// Location of the panel at the application.
    /// </summary>
    public enum PanelPlacements {
        DockPanelLeft,
        DockPanelBottom,
        ProjectTab,
        Popup,
        MainPanel
    }

    /// <summary>
    /// Basic interface for a generic panel.
    /// </summary>
    public interface IPanelViewModel
    {

        /// <summary>
        /// Gets the name of the panel.
        /// </summary>
        /// <value>The name of the panel.</value>
        string PanelName { get; }

        /// <summary>
        /// Gets the view.
        /// </summary>
        /// <value>The view.</value>
        object View { get; }

        /// <summary>
        /// Gets the panel display order when it is displayed at the view.
        /// </summary>
        /// <value>The panel display order.</value>
        int PanelDisplayOrder { get; }

        /// <summary>
        /// Gets the panel Unique id.
        /// </summary>
        /// <value>The panel Unique id.</value>
        string PanelUId { get; }

        /// <summary>
        /// Gets the panel placement.
        /// </summary>
        /// <value>The panel placement.</value>
        PanelPlacements PanelPlacement { get; }
    }
}
